/*
 * 1、用 Vehicle 类来表示 车类
 * 2、用 Bus 类表示公共汽车类
 */

// 定义父类
class Vehicle {
    constructor(frame, wheel, engine){
        this.frame = frame ; // 表示车上的框架
        this.wheel = wheel ; // 表示车轮
        this.engine = engine ; // 表示动力引擎
    }
    run(){
        console.log( '车跑起来了' );
    }
}

// 定义子类 ( 子类通过 extends 来 继承和扩展 父类 )
class Bus extends Vehicle {
    constructor( frame, wheel, engine, locator ) {
        super( frame , wheel , engine ); // 使用 super 调用父类构造函数
        this.locator = locator ;
    }
    locate(){
        console.log( `使用${this.locator}进行定位中` );
    }
}

let b = new Bus( '钛合金' , '米奇林', '东风' , 'BDS' );
console.log( b );
b.run();
b.locate();

// 定义子类
class Car extends Vehicle {
    constructor( frame, wheel, engine, locator , sofa , radio ) {
        super( frame , wheel , engine ); // 使用 super 调用父类构造函数
        this.locator = locator ;
        this.sofa = sofa ;
        this.radio = radio ;
    }
    locate(){
        console.log( `使用${this.locator}进行定位中` );
    }
    play(){
        console.log( `使用${this.radio}收听广播` );
    }
}

let c = new Car( '架子' , '轮子' , '引擎' , '定位器' , '沙发' , '收音机' );
c.run();
c.locate();
c.play();